#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//typedef unsigned int uint;//定义数据类型

//结构体类型
//typedef struct  Node
//{
//	int data; 
//	struct  Node* next;
//	
//}Node;
//int main()
//{
//	unsigned int num = 0;
//	uint num1 = 1;
//	struct  Node n;//新建节点
//	Node n1;
//	return 0;
//}

//static
//1、修饰局部变量
//2、修饰全局变量
//3、修饰函数
//void test()
//{
//	int a = 1;
//	a++;
//	printf("%d ", a);
//}
//
//int main()
//{
//	int i = 0;
//	while (i < 10)
//	{
//		test();
//		i++;
//	}
//
//	return 0;
//}

//声明外部符号
//extern int g_val;
//全局变量
//static int g_val; 

//int main()
//{
//	//寄存器变量
//	register int num = 3;//建议：3存放在寄存中
//
//
//	return 0;
//}

//define定义标识符常量
//#define NUM 100
//#define定义宏
//宏有参数
//#define ADD(x,y) x+y
//定义的宏与下方函数的功能一致
//int ADD(int x, int y)
//{
//	return x + y;
//}
//int main()
//{
//	int a = 10, b = 20;
//	int c = ADD(a ,b);
//	printf("%d\n", c);
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	&a;
//	//打印地址
//	printf("%p\n", &a);
//	int* p = &a;// int说明P指向的对象是int   地址也被称为指针   *  说明P是指针变量
//
//	*p=20;//解引用操作符，意思就是通过p中存放的地址，找到p所指向的对象，*p就是p指向的对象
//	printf("%d\n", a);//20
//	return 0;
//}

// 指针变量的大小
//int main()
//{
//	//不管是什么类型的指针，都是在创建指针变量
//	//指针变量是用来存放地址的
//	//指针变量的大小取决于一个地址存放的时候需要多大空间
//	//32位机器上的地址：32bit位--4byte，所以指针变量的大小是4个字节
//	//64位机器上的地址：64bit位--8byte，所以指针变量的大小是8个字节
//	printf("%zu\n", sizeof(char*));
//	printf("%zu\n", sizeof(short*));
//	printf("%zu\n", sizeof(int*));
//	printf("%zu\n", sizeof(float*));
//	printf("%zu\n", sizeof(double*));
//

//	return 0;
//}

//学生      结构体
struct  Stu
{
	//结构体成员
	char name[10];
	int age;
	char sex[10];
	char tele[12];
};

//struct  Stu  是一个定义的类型     *ps是指针
void print(struct  Stu* ps)
{
	//(*ps).   为了找出指针空间里的地址    用于对象中取地址
	printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
	//ps->  为了找出指针空间里的地址       结构体->成员名   用于对象中取地址
	printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tele);
}
int main()
{
	struct  Stu s = { "zs",20,"nan","1321213" };
	//结构体对象.成员名			变量中取地址
	printf("%s %d %s %s\n", s.name, s.age, s.sex, s.tele);
	print(&s);//打印地址
	return 0;
}


//int main()
//{
//	int a = 20;
//	if (3 == 3)
//		printf("hehe\n");
//	return 0;
//}

//判断一个数是否为奇数
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	if (a % 2 == 1)
//		printf("a为奇数\n");
//	else
//		printf("a为偶数\n");
//	return 0;
//}

//输出1-100之间的奇数
//int main()
//{
//	int i;
//	for (i = 0; i < 100; i++) {
//		if (i % 2 == 1) {
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}
//int main()
//{
//	int i;
//	while(i < 100) {
//		if (i % 2 == 1) {
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//		printf("星期1\n");
//	case 2:
//		printf("星期2\n");
//	case 3:
//		printf("星期3\n");
//	case 4:
//		printf("星期4\n");
//		break;//打断循环
//	case 5:
//		printf("星期5\n");
//	case 6:
//		printf("星期6\n");
//	case 7:
//		printf("星期日\n");
//	}
//
//	return 0;
//}
//int main()
//{
// 
// while循环中的
// break是用于永久的终止循环
// continue跳过本次循环后面的代码，直接去判断代码部分
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("weekday\n");
//		break;
//	case 6:
//	case 7:
//		printf("weekend\n");
//		break;
//	default:
//		printf("选择错误\n");
//		break;
//	}
//	return 0;
//}

//int main()
//{
//	//int ch = getchar();
//
//	//printf("%c\n", ch);//1
//	//putchar(ch);//2
//
//	/*int ch = 0;
//	while ((ch = getchar()) != EOF)
//	{
//		putchar(ch);
//	}*/
//
//
//	//举一个例子
//	//假设密码是一个字符串
//	char ps[20] = { 0 };
//	printf("请输入密码:>");
//	scanf("%s", ps);
//	//
//	//getchar();//读取了\n    缓冲
//	int ch = 0;
//	while ((ch = getchar()) != '\n')
//	{
//		;
//	}
//	printf("请确认密码(Y/N):>");
//	int ret = getchar();
//	if ('Y' == ret)
//	{
//		printf("Yes\n");
//	}
//	else
//		printf("No\n");
//	return 0;
//}

